import {defineStore} from 'pinia'
import cache from "@/units/cache"

export type stateType = {
    title: string//后台名称
    mourn: boolean//哀悼模式
    login_bg: string//登录主页背景图
    login_ad: string//登录主页广告图
    idle_exit: number//空闲登出时间
    debug: boolean//开发模式
    map: {
        key: string//腾讯地图密钥
        secret_key: string//腾讯地图安全密钥
    },
    company: string//公司名称
    environment: {//运行环境
        type: string
        name: string
        os: string
    },
    host: string//项目域名
}
/**
 * 后台菜单
 */
export default defineStore('app-configure', {
    state(): { info: stateType } {
        return {
            info: {
                title: "",//后台名称
                mourn: false,//哀悼模式
                login_bg: "",//登录主页背景图
                login_ad: "",//登录主页广告图
                idle_exit: 0,//空闲登出时间
                debug: false,//开发模式
                map: {
                    key: "",//腾讯地图密钥
                    secret_key: "",//腾讯地图安全密钥
                },
                company: "",//公司名称
                environment: {//运行环境
                    type: "",
                    name: "",
                    os: ""
                },
                host: ""//项目域名
            }
        }
    },
    actions: {
        /**
         * 储存菜单数据
         */
        setConfigure(data: stateType) {
            for (let key in data) {
                //@ts-ignore
                this.info[key as keyof stateType] = data[key as keyof stateType]
            }
        }
    },
    getters: {
        //@ts-ignore
        conf():{[key:keyof stateType]:any} {
            return this.info
        }
    },
    persist: {//持久化储存
        enabled: true,
        strategies: [
            {
                key: `${cache.prefix()}-store-configure`, // 默认key是上面store的id，可自定义key
                storage: localStorage,//本地储存驱动
            }
        ]
    }
})